//
//  main.m
//  Work1
//
//  Created by cora1n on 14-8-15.
//  Copyright (c) 2014年 devwu. All rights reserved.
//

//1.新建按钮类
//2.空调类,包含开关按钮,按钮被点击时,执行开关机操作
//3.当外界温度大于28度时,开启空调
//4.当外界温度小于22度时,关闭空调
#import <Foundation/Foundation.h>
#import "Room.h"
#import "AirCondition.h"
#import "Button.h"

int a = 10;

int main(int argc, const char * argv[])
{
    Button * b1 = [Button new];
    AirCondition * ac = [AirCondition new];
    ac.button = b1;
//    [ac.button setTarget:ac aciton:@selector(airConditionSwitch)];
    
    
    
    //块.
    //块中使用的外部对象会被retain
    //为了避免因块中的retain造成的 强引用循环问题
    //可以使用如下解决方案
    __weak AirCondition* weakAC = ac;
    
    
    [ac.button setBlock:^{
        [weakAC airConditionSwitch];
    }];
    
    
    
    
    Room * r =[Room new];
    [r addObserver:ac forKeyPath:@"temp" options:NSKeyValueObservingOptionNew context:nil];
    
    
    r.temp = 29;
    

    //1. 我的闹钟每天 7.30 开始响,时间间隔为 24*60*60;
    //2. 定时器每三分钟响一次,     时间间隔为 3*60;
    
    // OC中的定时器,用于定时执行任务
    //1.初始化定时器
//    NSTimer * t1 = [[NSTimer alloc]
//                    initWithFireDate:[NSDate date] //定时器启动时刻
//                            interval:1             //间隔
//                              target:ac            //
//                            selector:@selector(airConditionSwitch)
//                            userInfo:nil           //用于传递参数使用
//                             repeats:YES];
//    
//    //2.将定时器添加到运行回路中
//    [[NSRunLoop currentRunLoop]addTimer:t1 forMode:NSDefaultRunLoopMode];
//    //3.开启运行回路
//    //单例  项目运行中,唯一存在的实例变量
//    [[NSRunLoop currentRunLoop]run];
    
    
    
    
    
    
    [r removeObserver:ac forKeyPath:@"temp"];
    return 0;
}

